
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __gnu_gcj_xlib_GC__
#define __gnu_gcj_xlib_GC__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace gcj
    {
        class RawData;
      namespace xlib
      {
          class Drawable;
          class Font;
          class GC;
          class XImage;
      }
    }
  }
  namespace java
  {
    namespace awt
    {
        class Rectangle;
    }
  }
}

class gnu::gcj::xlib::GC : public ::java::lang::Object
{

public: // actually protected
  GC(::gnu::gcj::xlib::Drawable *);
public:
  virtual ::java::lang::Object * clone();
private:
  void initStructure(::gnu::gcj::xlib::GC *);
public:
  virtual ::gnu::gcj::xlib::GC * create();
  static ::gnu::gcj::xlib::GC * create(::gnu::gcj::xlib::Drawable *);
  virtual void finalize();
  virtual void dispose();
  virtual void disposeImpl();
  virtual void setForeground(jlong);
  virtual void setFont(::gnu::gcj::xlib::Font *);
  virtual void setClipRectangles(JArray< ::java::awt::Rectangle * > *);
  virtual void drawString(::java::lang::String *, jint, jint);
  virtual void drawLine(jint, jint, jint, jint);
  virtual void drawRectangle(jint, jint, jint, jint);
  virtual void fillRectangle(jint, jint, jint, jint);
  virtual void fillPolygon(JArray< jint > *, JArray< jint > *, jint, jint, jint);
  virtual void drawArc(jint, jint, jint, jint, jint, jint);
  virtual void fillArc(jint, jint, jint, jint, jint, jint);
  virtual void clearArea(jint, jint, jint, jint, jboolean);
  virtual void drawPoint(jint, jint);
  virtual void putImage(::gnu::gcj::xlib::XImage *, jint, jint, jint, jint, jint, jint);
  virtual void copyArea(::gnu::gcj::xlib::Drawable *, jint, jint, jint, jint, jint, jint);
  virtual ::gnu::gcj::xlib::Drawable * getDrawable();
private:
  void updateClip(JArray< ::java::awt::Rectangle * > *);
  ::gnu::gcj::xlib::Drawable * __attribute__((aligned(__alignof__( ::java::lang::Object)))) target;
  ::gnu::gcj::RawData * structure;
  JArray< ::java::awt::Rectangle * > * clipRectangles;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_gcj_xlib_GC__
